package com.project.mapper;

import com.project.bean.StudentBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**学生持久接口*/
public interface IStudentMapper {
    /**
     * 按班级id统计学生人数
     * @param classId 班级id
     * @return 返回班级学生人数
     */
    public int countStudentByClass(int classId);
    /**
     * 按房间id统计学生人数
     * @param roomId 房间id
     * @return 返回班级学生人数
     */
    public int countStudentByRoom(int roomId);
    /**
     * 动态条件查询学生信息，同时查询班级名称和房间地址
     * @param studentName 学生姓名
     * @param className 班级名称
     * @param address 房间地址
     * @return 学生集合
     */
    public List<StudentBean> findByItem(@Param("studentName") String studentName,
                                       @Param("className") String className,
                                       @Param("address") String address);

    /**
     * 按宿舍id查询已住学生
     * @param roomId 房间id
     * @return 返回已住学生集合
     */
    public List<StudentBean> findByRoom(int roomId);

    /**
     * 添加学生信息
     * @param student 学生对象
     */
    public void addStudent(StudentBean student);

    /**
     * 按ID删除学生信息
     * @param StudentId 学生ID
     */
    public void delStudent(int StudentId);

    /**
     * 按ID查询学生信息，同时查询班级名称和房间地址
     * @param StudentId 学生ID
     * @return 学生对象
     */
    public StudentBean findById(int StudentId);

    /**
     * 按ID修改房间
     * @param StudentId 学生ID
     * @param roomId 新房间号
     */
    public void updateRoom(@Param("StudentId") int StudentId,@Param("roomId") int roomId);

    public List<StudentBean> cutItemList(@Param("start") int start,@Param("pageSize") int pageSize,
                                        @Param("studentName") String studentName,
                                        @Param("className") String className,
                                        @Param("address") String address);
    public int cutItemCount(@Param("studentName") String studentName,
                           @Param("className") String className,
                           @Param("address") String address);

}
